package com.goldgov.learnmanage.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.goldgov.learnmanage.service.User;
import com.goldgov.learnmanage.service.UserParam;
import com.goldgov.learnmanage.service.UserQuery;
import com.goldgov.organization.service.Organization;
@Mapper
public interface UserDao {

	/**
	 * 流动党员列表
	 * @param query
	 * @return
	 */
	public List<User> getUserList(@Param("query") UserQuery query);
	/**
	 * 流动党员学习时长列表(按时间)
	 * @param query
	 * @return
	 */
	public List<User> getUserLearnList(@Param("query") UserQuery query);
	
	/**
	 * 查询我的学习情况
	 * @param query
	 * @return
	 */
	public User findMyCourseLearing(@Param("query") UserQuery query);

	/**
	 * 查询机构用户的学习情况
	 * @param query
	 * @return
	 */
	public List<User>  findOrgCourseLearingPageSize(@Param("query")UserQuery query);
	 
	/**
	 * 查询机构下用户
	 * @param orgID
	 * @return
	 */
	List<User> findOrgUser(@Param("orgID")String orgID);
	
	/**|
	 * 查询机构下各性别人数
	 * @return
	 */
	List<User> listUserByGender(@Param("orgID")String orgID);
	/**|
	 * 查询各类型机构数
	 * @return
	 */
	List<Organization> listOrgByType(@Param("orgID")String orgID);
	/**
	 * 流动党员学习时长列表(按时间)
	 * @param query
	 * @return
	 */
	public List<User> getUserLearnListNoQuery(@Param("searchYear")String searchYear,@Param("searchTreePath")String searchTreePath,@Param("searchChilderOrg")boolean searchChilderOrg,@Param("searchOrgCode")String searchOrgCode,@Param("searchUserName")String searchUserName,@Param("searchOrgName")String searchOrgName,@Param("searchLoginID")String searchLoginID,@Param("searchMember")Integer searchMember,@Param("firstResult")Integer firstResult,@Param("pageSize")Integer pageSize);
	/**
	 * 优化 流动党员学习时长列表(按时间)
	 * @param query
	 * @return
	 */
	Long countUserLearnListNoQuery(@Param("searchYear")String searchYear,@Param("searchTreePath")String searchTreePath,@Param("searchChilderOrg")boolean searchChilderOrg,@Param("searchOrgCode")String searchOrgCode,@Param("searchUserName")String searchUserName,@Param("searchOrgName")String searchOrgName,@Param("searchLoginID")String searchLoginID,@Param("searchMember")Integer searchMember);
	/**
	 * 获取下一级组织学习信息
	 * @date 2018年11月28日 上午11:07:41 
	 * @author hanxiangyu
	 * @param query
	 * @return
	 */
	List<User> findOrgLearnCourseTime(@Param("query")UserParam query);
	
	
	/**
	 * 获取最下级人员学习信息
	 * @date 2018年11月28日 上午11:09:29 
	 * @author hanxiangyu
	 * @param query
	 * @return
	 */
	List<User> findOrgUserLearn(@Param("query")UserParam query);
	/**
	 * 获取下一级组织人员对比
	 * @date 2018年11月28日 上午11:08:15 
	 * @author hanxiangyu
	 * @param query
	 * @return
	 */
	List<User> findOrgUserContrast(@Param("query")UserQuery query);
	/**
	 * 获取下一级组织人员对比
	 * @date 2018年11月28日 上午11:08:15 
	 * @author hanxiangyu
	 * @param query
	 * @return
	 */
	List<User> findOrgUserContrastByOrgID(@Param("query")UserParam query);
	/**
	 * 流动党员学习
	 * @date 2018年12月13日 上午11:15:05 
	 * @author hanxiangyu
	 * @param query
	 * @return
	 */
	List<User> findOrgLDDYStudy(@Param("query")UserQuery query);
	
	/**
	 * 判断是否含有下级组织
	 * @date 2018年11月28日 上午11:08:15 
	 * @author hanxiangyu
	 * @param query
	 * @return
	 */
	List<User> judgeIsIncludeSubordinate(@Param("orgID")String orgID);
	
}
